import React from 'react'

export default class Child extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      count: 0
    }
  }
  componentDidMount () {
    console.log('did mount：在第一次渲染后调用，只在客户端。之后组件已经生成了对应的DOM结构，可以通过this.getDOMNode()来进行访问。 如果你想和其他JavaScript框架一起使用，可以在这个方法中调用setTimeout, setInterval或者发送AJAX请求等操作(防止异步操作阻塞UI)')
  }

  componentWillMount () {
    console.log('will mount：在渲染前调用,在客户端也在服务端')
  }

  componentWillReceiveProps (newProps) {
    console.log('will props' + newProps.name + '：在组件接收到一个新的 prop (更新后)时被调用。这个方法在初始化render时不会被调用。')
  }

  shouldComponentUpdate () {
    console.log('should update：返回一个布尔值。在组件接收到新的props或者state时被调用。在初始化时或者使用forceUpdate时不被调用。')
    return true;
  }

  componentWillUpdate () {
    console.log('will update：在组件接收到新的props或者state但还没有render时被调用。在初始化时不会被调用')
  }

  componentDidUpdate () {
    console.log('did update：在组件完成更新后立即调用。在初始化时不会被调用。')
  }

  render() {
    return  <div>
              <p>{this.props.name}</p>
            </div>
  }
}